package com.le.medium.class6;

import org.junit.Test;

/**
 * 小Q正在给一条长度为n的道路设计路灯安置方案。 为了让问题更简单,小Q把道路视为n个方格,
 * 需要照亮的地方用'.'表示, 不需要 照亮的障碍物格子用'X'表示。
 * 小Q现在要在道路上设置一些路灯, 对于安置在 pos位置的路灯, 这盏路灯可以照亮pos - 1, pos, pos + 1这三个位置。
 * 小Q希望能安置尽量少的路灯照亮所有'.'区域, 希望你能帮他计算一下最少需 要多少盏路灯。
 * 输入描述： 输入的第一行包含一个正整数t(1 <= t <= 1000), 表示测试用例数 接下来每两行一个测试数据,
 * 第一行一个正整数n(1 <= n <= 1000),表示道路 的长度。
 * 第二行一个字符串s表示道路的构造,只包含'.'和'X'。
 * 输出描述： 对于每个测试用例, 输出一个正整数表示最少需要多少盏路灯。
 */
public class Problem05_Light {

    public static int minLight(String s){
        if (s == null || s.length() == 0){
            return 0;
        }
        int count = 0;
        int index = 0;
        char[] chs = s.toCharArray();
        while (index < chs.length){
            if (chs[index] == 'X'){
                index++;
            }else {
                count++;
                if (index + 1 == chs.length){
                    break;
                }else if (chs[index + 1] == 'X'){
                    index = index + 2;
                }else{
                    index = index + 3;
                }
            }
        }
        return count;
    }


    @Test
    public void test(){
        String test1 = "...X.X.X..XX.XX.X.X.X.X.XX.XXX.X.XXX.XX";
        String test = "...XX....XX";
        System.out.println(minLight(test));
    }
}
